package co.edu.usbcali.lidis.vista;

import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.List;

import javax.swing.JFrame;

import co.edu.usbcali.lidis.dataaccess.daoFactory.FachadaBaseDeDatos;
import co.edu.usbcali.lidis.modelo.Proyecto;

@SuppressWarnings("serial")
public class PantallaRecomendacion extends javax.swing.JFrame {
	private Proyecto[] proyectosArray = null;
	private int itemSeleccionado = 0;

	public PantallaRecomendacion(List<Proyecto> proyecto, String palClave) {
		setUndecorated(true);
		initComponents(proyecto, palClave);
		String path = System.getProperty("user.dir");
		Panel p = new Panel(path + "/imagenes/fondoRecomendacion.png");
		this.add(p, BorderLayout.CENTER);
		this.pack();
		setSize(440, 322);
	}

	@SuppressWarnings({ "unchecked", "rawtypes" })
	private void initComponents(List<Proyecto> proyecto, String palClave) {

		proyectosArray = proyecto.toArray(new Proyecto[proyecto.size()]);

		String[] tituloProyectos = new String[proyecto.size()];

		for (int i = 0; i < proyectosArray.length; i++) {
			tituloProyectos[i] = proyectosArray[i].getProTitulo();
		}

		btnIngresar = new javax.swing.JButton();
		btnSalir = new javax.swing.JButton();
		jScrollPane1 = new javax.swing.JScrollPane();
		jList1 = new javax.swing.JList(tituloProyectos);
		jLabel1 = new javax.swing.JLabel();
		jLabel2 = new javax.swing.JLabel();
		jLabel3 = new javax.swing.JLabel();
		jLabel4 = new javax.swing.JLabel();

		setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
		setTitle("Proyectos Recomendados");
		setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
		setForeground(java.awt.Color.white);
		setIconImage(getIconImage());

		btnIngresar.setMnemonic('1');
		btnIngresar.setText("Ver Proyecto");

		btnIngresar.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				btnIngresarActionPerformed(evt);
			}
		});

		btnSalir.setMnemonic('s');
		btnSalir.setText("Salir");
		btnSalir.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				btnSalirActionPerformed(evt);
			}
		});

		jScrollPane1.setViewportView(jList1);

		jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 16)); // NOI18N
		jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		jLabel1.setText("Proyectos Recomendados");

		jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N
		jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		jLabel2.setText("Otros proyectos relacionados con los temas: ");

		jLabel3.setFont(new java.awt.Font("Segoe UI", 0, 12)); // NOI18N
		jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
		jLabel3.setText(palClave + " son:");

		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.LEADING)
												.addGroup(
														layout.createSequentialGroup()
																.addGap(92, 92,
																		92)
																.addComponent(
																		btnIngresar)
																.addGap(72, 72,
																		72)
																.addComponent(
																		btnSalir))
												.addGroup(
														layout.createSequentialGroup()
																.addGap(51, 51,
																		51)
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING,
																				false)
																				.addComponent(
																						jScrollPane1,
																						326,
																						326,
																						326)
																				.addComponent(
																						jLabel1,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						326,
																						Short.MAX_VALUE)
																				.addComponent(
																						jLabel2,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						326,
																						Short.MAX_VALUE)
																				.addComponent(
																						jLabel3,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						326,
																						Short.MAX_VALUE)
																				.addComponent(
																						jLabel4,
																						javax.swing.GroupLayout.DEFAULT_SIZE,
																						326,
																						Short.MAX_VALUE))))

								.addContainerGap(53, Short.MAX_VALUE)));
		layout.setVerticalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGap(8, 8, 8)
								.addComponent(jLabel1)
								.addGap(20, 20, 20)
								.addComponent(jLabel2)
								.addComponent(jLabel3)
								.addComponent(jLabel4)
								.addGap(23, 23, 23)
								.addComponent(jScrollPane1,
										javax.swing.GroupLayout.PREFERRED_SIZE,
										javax.swing.GroupLayout.DEFAULT_SIZE,
										javax.swing.GroupLayout.PREFERRED_SIZE)
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.RELATED,
										28, Short.MAX_VALUE)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(btnIngresar)
												.addComponent(btnSalir))
								.addGap(32, 32, 32)));

		setSize(new java.awt.Dimension(446, 328));
		setLocationRelativeTo(null);
	}

	private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {
		PantallaInicio pantallaInicio=new PantallaInicio();
		pantallaInicio.setSize(510, 302);
		pantallaInicio.setVisible(true);
		pantallaInicio.setLocationRelativeTo(null);
		dispose();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
	}

	private void btnIngresarActionPerformed(java.awt.event.ActionEvent evt) {
		int selected[] = jList1.getSelectedIndices();

		for (int i = 0; i < selected.length; i++) {
			itemSeleccionado = selected[i];
		}

		System.out.println(proyectosArray[itemSeleccionado].getProId());
		try {
			Proyecto proyecto = FachadaBaseDeDatos.getInstance()
					.consultarProyectoPorId(
							proyectosArray[itemSeleccionado].getProId());
			PantallaPropuesta pantallaPropuesta = new PantallaPropuesta(0,
					proyecto);
			pantallaPropuesta.setSize(560, 699);
			pantallaPropuesta.setVisible(true);
			pantallaPropuesta.setLocationRelativeTo(null);
			// dispose();
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	@Override
	public Image getIconImage() {
		String path = System.getProperty("user.dir");
		System.out.println(path);
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Image retValue = toolkit.getImage(path + "/imagenes/icono.png");
		return retValue;
	}

	// Variables declaration - do not modify
	private javax.swing.JButton btnIngresar;
	private javax.swing.JButton btnSalir;
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JLabel jLabel3;
	private javax.swing.JLabel jLabel4;
	@SuppressWarnings("rawtypes")
	private javax.swing.JList jList1;
	private javax.swing.JScrollPane jScrollPane1;
	// End of variables declaration
}
